package Level02.Four;

//.定义一个隧道类，实现 Runnable 接口：
public class Tunnel implements Runnable {
    //定义一个变量，用来记录通过隧道的人数；
    private Integer num = 0;
    private Tunnel tunnel;
    private String name;


    public Tunnel() {
    }

    public Tunnel(Tunnel tunnel, String name) {
        this.tunnel = tunnel;
        this.name = name;
    }

    //重写 Runnable 的 run 方法；
    @Override
    public void run() {
        function();
    }

    //定义一个同步方法，模拟每个人通过隧道需要 5 秒钟：
    public synchronized void function() {
        try {
            //子线程睡眠 5 秒钟，模拟每个人通过隧道需要 5 秒钟
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //改变通过的人次；
        num++;
        //打印线程名称及其通过隧道的顺序，模拟人通过隧道及其顺序；
        System.out.println("通过隧道的人名字为:" +Thread.currentThread().getName() + "他是第:" + num+"通过隧道的");

    }

}
